package com.yunyao.framework.dto.payment;

import com.baomidou.mybatisplus.annotation.TableField;
import com.yunyao.common.dto.FileDto;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 收款信息
 * </p>
 *
 * @author chenyejian
 * @since 2024-07-02
 */
@Data
public class ReceiveSaveDto {

    /**
     * 主键
     */
    private String id;

    /**
     * 合同ID
     */
    private String contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 项目id
     */
    private String projectId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 签订日期
     */
    private Date signDate;

    /**
     * 合同方式
     */
    private String contractMethod;

    /**
     * 合同总金额
     */
    private BigDecimal contractTotalPrice;

    /**
     * 采购单位ID
     */
    private String purchaseDeptId;

    /**
     * 采购单位部门名称 
     */
    private String purchaseDeptName;

    /**
     * 项目所属部门id
     */
    private String projectDeptId;

    /**
     * 项目所属部门名称
     */
    private String projectDeptName;

    /**
     * 合同预付款状态
     */
    private String contractPrePaymentStatus;

    /**
     * 订单预付款状态
     */
    private String orderPrePaymentStatus;

    /**
     * 合同预付款截止时间
     */
    private Date contractEndDate;

    /**
     * 合同预付款比例
     */
    private BigDecimal contractPrePaymentRate;

    /**
     * 合同预付款金额 
     */
    private BigDecimal contractPrePaymentPrice;

    /**
     * 收款时间
     */
    private Date receiveDate;

    /**
     * 收款金额
     */
    private BigDecimal receivePrice;

    /**
     * 收款方式
     */
    private String receiveType;

//    /**
//     * 收款节点id
//     */
    private List<String> receiveNodeId;

    /**
     * 收款节点名称
     */
    private String receiveNodeName;

    /**
     * 文件
     */
    private List<FileDto> file;

    /**
     * 备注
     */
    private String mark;

    /**
     * 状态
     */
    @TableField("`status`")
    private Integer status;

    /**
     * 删除标识
     */
    private Integer isDeleted;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建部门
     */
    private String createDept;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 修改人
     */
    private String updatedBy;

    /**
     * 修改时间
     */
    private Date updatedAt;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 流程状态
     */
    private String auditStatus;

    /**
     * 流程实例ID
     */
    private String processInstanceId;

    /**
     * 流程设计模板信息ID
     */
    private String modelSchemeInfoId;

    /**
     * 流程部署ID
     */
    private String deploymentId;

    /**
     * 流程版本
     */
    private String processVersion;

    /**
     * 供应商Id
     */
    private String supplierDeptId;

    /**
     * 供应商名称
     */
    private String supplierDeptName;

    /**
     * 收款方式名称
     */
    private String receiveTypeName;

    /**
     * 结余金额
     */
    private BigDecimal balanceAmount;

    /**
     * 已付金额
     */
    private BigDecimal paymentPrice;

    List<ReceiveNodeSaveDto> receiveNodes;

    List<ReceiveContractInvoiceSaveDto> receiveContractInvoices;

    List<ReceiveHistorySaveDto> receiveHistorys;
}
